МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
/
Кафедра ЕОМ
Звіт
"Представлення в пам’яті комп’ютера
статичних даних"
до курсової роботи (Частина 1)
з дисципліни
" Програмування. Частина III.
Структури даних та алгоритми "
Львів – 2011
Завдання на курсову роботу
3.1. Завдання 1
Визначити внутрішнє представлення в пам’яті комп’ютера даних базових типів. Розглянути основні прості (цілі, дійсні, символьні, логічні) типи даних:
Стовпчик = (місяць народження студента) % 5=1
Рядок = (день народження студента) % 6=2
Варант(1;2)= b,ch2,i6,d1
bool b;
unsigned char ch2;
long i6;
float d1;
b = (день народження * 5) % 10 * місяць народження = (26 * 5) % 10 * 11 = 15;
ch2 = друга літера прізвища = ‘u’;
i6 = день народження * 215 = 26 * 215 = -9152;
d1 = – Z . X e – Y;
X – день народження, Y – місяць народження, Z = X * Y;
Х = 26; Y = 11; Z = X * Y = 11 *26 = 286;
d1 = – 286 . 26e – 11;
3.2.1. Представлення рядків символів
№ варіанта = (((день народження * номер будинку) % номер квартири) * місяць народження + номер будинку) % 30=(26*56) %11)*11+56) % 30=10
char *string10 = "fsggg4\x11 4vv\vnn n\"df""\\\?6\6";
3.2.2. Представлення переліків
№ варіанта = ((день народження + номер будинку) * (номер квартири + місяць народження)) % 30=((26+56)*(11+11)) %30=4
enum color4 {
BLUE,
GREEN,
CYAN = 9,
RED,
BROWN,
GRAY,
YELLOW = -1,
WHІTE,
MAGENTA,
LІGHTGRAY,
DARKGRAY = 2,
BLACK
} c1= CYAN,
c2= BROWN,
c3= DARKGRAY;
3.2.3. Представлення масивів
№ варіанта = (номер будинку * 10 + номер квартири * місяць народження) % 30 = (56 * 10 + 11 * 11) % 30 = 21.
unsigned short array21[][3][2] = {{{}, 15,2,8,5}, {}, 34}
3.2.4. Представлення структур
№ варіанта = (день народження * 3 * номер квартири + (місяць народження % 3) * номер будинку) % 30=(26*3*11+(11%3)*56)%30=10
struct str10 {
short :10;
char c[8];
long :12;
short b:8;
unsigned e:3;
float a;
char f;
unsigned long d;
}str;
3.2.5. Представлення об'єднань
Визначити представлення в пам’яті комп’ютера об'єднань.
№ варіанта = (день народження + місяць народження + номер квартири * номер будинку + день народження * місяць народження) % 30 = (26+ 11 + 11 * 56 + 26 * 11) % 30 = 9.
Оголосити об'єднання згідно наведеній нижче таблиці. Після цього надати деяким елементам об'єднання початкові значення, задані після таблиці.
union un9 {
char a[9];
unsigned f[5];
struct {
bool d;
short b;
double e;
};
char c;
} un;
un.e = 55367;
un.c = 174200;
un.e = KV * 325 + YEAR * DN = 55367;
un.c = DN * (MN + BD) * 100 = 174200;
Зміст
Завдання на курсову роботу
Вступ
Теоретична частина
Алгоритм розв’язання задачі.
Система тестів
Завдання 1: Внутрішні формати базових типів
3.1.1. Логічний тип
3.1.2. Символьний тип
3.1.3. Цілий тип
3.1.4. Дійсний тип
Завдання 2: Внутрішні формати похідних типів
3.2.1. Рядок символів
3.2.2. Перерахування
3.2.3. Масив
3.2.4. Структура
3.2.5. Об'єднання
Результати виконання програми
Висновки
Список літератури
Додатки
Вступ
Програма, написана на будь-якій мові програмування, є деякою описаною послідовністю операцій, котрі необхідно виконати з деякою сукупністю даних. В свою чергу будова конкретної обчислювальної машини і особливості трансляторів визначають внутрішнє представлення даних ( їх розміщення в пам’яті ЕОМ. Ці факти свідчать про те, що організація даних для обробки є важливим етапом розробки програмних продуктів, а проблема структур даних та алгоритмів роботи з ними є актуальною проблемою.
Для реалізації багатьох програм вибір структури даних є найважливішим рішенням, і коли вибір зроблено правильно, то розробка алгоритму програми значно спрощується. Для одних і тих самих даних різні структури будуть займати неоднаковий дисковий простір; ті самі операції з різними структурами даних створюють алгоритми різної ефективності. Тобто вибір алгоритмів та структур даних тісно взаємопов’язані і найчасті...